package br.com.logistica.persistence.entidades;

import java.io.Serializable;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;



/**
 * 
 * @author Eduardo
 * 
 *         Classe responsavel pelo mapeamento da entidade notafiscal.
 * 
 */
@Entity
public class Transportadora implements Serializable {

	// -------------------------------------------[Construtores]--------------------------------------------------

	// -------------------------------------------[Atributos]--------------------------------------------------

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	private int idTransportadora;

	@OneToMany(mappedBy = "transportadora")
	private List<NotaFiscal> notaFiscals;

	// atributo que representa o nome da transportadora
	private String nome;

	// atributo que representa o municipio da tranportadora
	private String municipio;

	// atributo que representa a uf da nota
	private String uf;

	// atributo que representa o cnpj da transportadora
	private String cnpj;

	@OneToMany(mappedBy = "transportadora", cascade = CascadeType.ALL)
	private List<Historico> historicos;
	
	public List<Historico> getHistoricos() {
		return historicos;
	}

	public void setHistoricos(List<Historico> historicos) {
		this.historicos = historicos;
	}



	@OneToMany(mappedBy = "transportadora")
	private List<Conhecimento> conhecimentos;

	// -------------------------------------------[M�todos]--------------------------------------------------

	// -------------------------------------------[Getters and
	// Setters]--------------------------------------------------

	public int getIdTransportadora() {
		return idTransportadora;
	}

	public List<NotaFiscal> getNotaFiscals() {
		return notaFiscals;
	}

	public String getCnpj() {
		return cnpj;
	}

	public void setIdTransportadora(int idTransportadora) {
		this.idTransportadora = idTransportadora;
	}

	public void setNotaFiscals(List<NotaFiscal> notaFiscals) {
		this.notaFiscals = notaFiscals;
	}

	public void setCnpj(String cnpj) {
		this.cnpj = cnpj;
	}

	public String getNome() {
		return nome;
	}

	public String getMunicipio() {
		return municipio;
	}

	public String getUf() {
		return uf;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public void setMunicipio(String municipio) {
		this.municipio = municipio;
	}

	public void setUf(String uf) {
		this.uf = uf;
	}
	public List<Conhecimento> getConhecimentos() {
		return conhecimentos;
	}

	public void setConhecimentos(List<Conhecimento> conhecimentos) {
		this.conhecimentos = conhecimentos;
	}
}
